package com.cddx.logistics.service.impl;

import com.cddx.logistics.domain.dto.StorageLocationQueryDTO;
import com.cddx.logistics.domain.pojo.StorageLocation;
import com.cddx.logistics.domain.vo.HStorageLocationVO;
import com.cddx.logistics.domain.vo.MaterialVO;
import com.cddx.logistics.mapper.StorageLocationMapper;
import com.cddx.logistics.service.StorageLocationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
@Service
public class StorageLocationServiceImpl implements StorageLocationService {
    @Resource
    private StorageLocationMapper storageLocationMapper;



    @Override
    public boolean add(StorageLocation dto) {
        dto.setStorageLocationCreateTime(LocalDateTime.now());
        dto.setStorageLocationUpdateTime(LocalDateTime.now());
       return storageLocationMapper.add(dto) > 0;
    }

    @Override
    public boolean update(StorageLocation dto) {
        log.info("开始更新库位: {}", dto.getStorageLocationCode());
        log.debug("更新数据: {}", dto);

        dto.setStorageLocationUpdateTime(LocalDateTime.now());
        int rows = storageLocationMapper.update(dto);
        if (rows <= 0) {
            log.warn("更新库位 {} 失败，影响行数为 0", dto.getStorageLocationCode());
        }
        return rows > 0;
    }


    @Override
    public List<HStorageLocationVO> queryList(StorageLocationQueryDTO storageLocationQueryDTO) {
        return storageLocationMapper.queryPage(storageLocationQueryDTO);
    }

    @Override
    public boolean delete(Integer id) {
        return storageLocationMapper.delete(id) > 0;
    }

    @Override
    public StorageLocation getById(Integer id) {
        return storageLocationMapper.selectById(id);
    }

    @Override
    public List<MaterialVO> getMaterialsByLocationId(Integer id) {
        return storageLocationMapper.getMaterialsByLocationId(id);
    }

    //配合定时
    @Override
    public List<StorageLocation> getAll() {
        return storageLocationMapper.selectAll(); // 假设 mapper 中有 selectAll()
    }

//
}
